#ifndef DATAMONITOR_H
#define DATAMONITOR_H

#include <QObject>
#include <QTimer>
#include <QSqlDatabase>
#include "devicemanagement.h"

// 数据监控类，负责监控设备数据
class DataMonitor : public QObject {
    Q_OBJECT
public:
    // 构造函数
    explicit DataMonitor(QObject* parent = nullptr);
    // 析构函数
    ~DataMonitor();

    // 创建数据表
    void createDataTable();

    // 开始监控
    void startMonitoring();
    // 停止监控
    void stopMonitoring();

    // 接收并存储数据
    bool receiveAndStoreData(int deviceId, double temperature, double humidity, double light, double co2, double pressure);

    // 查询历史数据
    QList<QSqlRecord> queryHistoricalData(int deviceId, const QString& startTime, const QString& endTime);

signals:
    // 新数据可用信号
    void newDataAvailable(int deviceId, double temperature, double humidity, double light, double co2, double pressure);

private slots:
    // 定时器超时槽函数
    void onTimerTimeout();

private:
    // 定时器对象
    QTimer m_timer;
};

#endif // DATAMONITOR_H
